home *** CD-ROM | disk | FTP | other *** search
- { Copyright ⌐ 1997-2001 Plasmatech Software Design. All rights reserved.
-
- File: PTCompVer.inc
- Vers: 6.0
- Date: 28-6-2001
-
- This file defines a set of useful compiler definitions. If you rely on
- the definitions in this file you can just update this one file when
- new versions of Delphi and C++Builder are released.
-
- Include this file at the start of your units with $INCLUDE.
-
- Symbol Meaning
- ======== ==============
- VER9x Compiler version is between 90 and 99. Includes Delphi 2 and
- C++Builder 1.
- VER10x Compiler version is between 100 and 109. Includes Delphi 3.
- VER11x Compiler version is between 110 and 119. Includes C++Builder 3.
- VER12x Compiler version is between 120 and 129. Includes Delphi 4 and
- C++Builder 4.
- VER13x Compiler version is between 130 and 139. Includes Delphi 5 and
- C++Builder 5.
- VER14x Compiler version is between 140 and 149. Includes Delphi 6 and
- Kylix 1.
-
- DELPHI Is a Delphi verison of the compiler.
- CBUILDER Is a C++Builder version of the compiler.
-
- VCL20 VCL version 2.0 (Delphi 2, C++Builder 1).
- VCL30 VCL version 3.0 (Delphi 3.x).
- VCL35 VCL version 3.5 (C++Builder 3).
- VCL40 VCL version 4.0 (Delphi 4.0, C++Builder 4)
- VCL50 VCL version 5.0 (Delphi 5.0, C++Builder 5)
- VCL60 VCL version 6.0 (Delphi 6.0, Kylix 1)
-
- VCL20PLUS VCL version 2.0 or greater.
- VCL30PLUS VCL version 3.0 or greater.
- VCL35PLUS VCL version 3.5 or greater.
- VCL40PLUS VCL version 4.0 or greater.
- VCL50PLUS VCL version 5.0 or greater.
- VCL60PLUS VCL version 6.0 or greater.
-
- CBUILDER1 C++Builder 1.
- CBUILDER3 C++Builder 3.
- CBUILDER4 C++Builder 4.
- CBUILDER5 C++Builder 5.
- DELPHI2 Delphi 2.
- DELPHI3 Delphi 3.
- DELPHI4 Delphi 4.
- DELPHI5 Delphi 5.
- DELPHI6 Delphi 6.
-
- INTERFACES
- True if the compiler understands interfaces. ie. The interface
- keyword, automatic reference counting, GUID semantics etc.
-
- WIDESTRINGS
- True if the WideString type is a heap-allocated, automatically
- freed 2-byte per char string type (like Delphi 3).
-
- RESOURCESTRINGS
- True if the 'resourcestring' keyword has meaning.
-
- OVERLOADING
- True if method overloading is supported.
-
- DEFAULTPARAMS
- True if default parameters are supported.
-
- INT64
- True if Int64 type is available.
- }
-
- {$DEFINE VER_UNKNOWN}
-
- // -- CBuilder 4.0 ----------
- {$IFDEF VER125}
- {$UNDEF VER_UNKNOWN}
- {$DEFINE CBUILDER}
- {$DEFINE CBUILDER4}
- {$DEFINE CBUILDER1PLUS}
- {$DEFINE CBUILDER3PLUS}
- {$DEFINE CBUILDER4PLUS}
- {$DEFINE VER12x}
- {$DEFINE INTERFACES}
- {$DEFINE WIDESTRINGS}
- {$DEFINE RESOURCESTRINGS}
- {$DEFINE OVERLOADING}
- {$DEFINE DEFAULTPARAMS}
- {$DEFINE INT64}
- {$DEFINE VCL40}
- {$DEFINE VCL20PLUS}
- {$DEFINE VCL30PLUS}
- {$DEFINE VCL35PLUS}
- {$DEFINE VCL40PLUS}
- {$ENDIF}
-
- // -- CBuilder 3.0 ----------
- {$IFDEF VER110}
- {$UNDEF VER_UNKNOWN}
- {$DEFINE CBUILDER}
- {$DEFINE CBUILDER3}
- {$DEFINE CBUILDER1PLUS}
- {$DEFINE CBUILDER3PLUS}
- {$DEFINE VER11x}
- {$DEFINE INTERFACES}
- {$DEFINE WIDESTRINGS}
- {$DEFINE RESOURCESTRINGS}
- {$DEFINE VCL35}
- {$DEFINE VCL20PLUS}
- {$DEFINE VCL30PLUS}
- {$DEFINE VCL35PLUS}
- {$ENDIF}
-
- // -- Delphi 3.0 ------------
- {$IFDEF VER100}
- {$UNDEF VER_UNKNOWN}
- {$DEFINE DELPHI}
- {$DEFINE DELPHI3}
- {$DEFINE DELPHI2PLUS}
- {$DEFINE DELPHI3PLUS}
- {$DEFINE VER10x}
- {$DEFINE INTERFACES}
- {$DEFINE WIDESTRINGS}
- {$DEFINE RESOURCESTRINGS}
- {$DEFINE VCL30}
- {$DEFINE VCL20PLUS}
- {$DEFINE VCL30PLUS}
- {$ENDIF}
-
- // -- CBuilder 1.0 ----------
- {$IFDEF VER93}
- {$UNDEF VER_UNKNOWN}
- {$DEFINE CBUILDER}
- {$DEFINE CBUILDER1}
- {$DEFINE CBUILDER1PLUS}
- {$DEFINE VER9x}
- {$DEFINE VCL20}
- {$DEFINE VCL20PLUS}
- {$ENDIF}
-
- // -- Delphi 2.0 ------------
- {$IFDEF VER90}
- {$UNDEF VER_UNKNOWN}
- {$DEFINE DELPHI}
- {$DEFINE DELPHI2}
- {$DEFINE DELPHI2PLUS}
- {$DEFINE VER9x}
- {$DEFINE VCL20}
- {$DEFINE VCL20PLUS}
- {$ENDIF}
-
- // -- Delphi 4.0 ------------
- {$IFDEF VER120}
- {$UNDEF VER_UNKNOWN}
- {$DEFINE DELPHI}
- {$DEFINE DELPHI4}
- {$DEFINE DELPHI2PLUS}
- {$DEFINE DELPHI3PLUS}
- {$DEFINE DELPHI4PLUS}
- {$DEFINE VER12x}
- {$DEFINE INTERFACES}
- {$DEFINE WIDESTRINGS}
- {$DEFINE RESOURCESTRINGS}
- {$DEFINE OVERLOADING}
- {$DEFINE DEFAULTPARAMS}
- {$DEFINE INT64}
- {$DEFINE VCL40}
- {$DEFINE VCL20PLUS}
- {$DEFINE VCL30PLUS}
- {$DEFINE VCL35PLUS}
- {$DEFINE VCL40PLUS}
- {$ENDIF}
-
- // -- Delphi 5.0 and C++Builder 5.0 ------------
- {$IFDEF VER130}
- {$UNDEF VER_UNKNOWN}
- {$DEFINE VER13x}
- {$DEFINE INTERFACES}
- {$DEFINE WIDESTRINGS}
- {$DEFINE RESOURCESTRINGS}
- {$DEFINE OVERLOADING}
- {$DEFINE DEFAULTPARAMS}
- {$DEFINE INT64}
- {$DEFINE VCL50}
- {$DEFINE VCL20PLUS}
- {$DEFINE VCL30PLUS}
- {$DEFINE VCL35PLUS}
- {$DEFINE VCL40PLUS}
- {$DEFINE VCL50PLUS}
- {$IFDEF BCB} // C++Builder 5
- {$DEFINE CBUILDER}
- {$DEFINE CBUILDER5}
- {$DEFINE CBUILDER1PLUS}
- {$DEFINE CBUILDER3PLUS}
- {$DEFINE CBUILDER4PLUS}
- {$DEFINE CBUILDER5PLUS}
- {$ELSE} // must be Delphi 5
- {$DEFINE DELPHI}
- {$DEFINE DELPHI5}
- {$DEFINE DELPHI2PLUS}
- {$DEFINE DELPHI3PLUS}
- {$DEFINE DELPHI4PLUS}
- {$DEFINE DELPHI5PLUS}
- {$ENDIF}
- {$ENDIF}
-
-
- // -- This little convolution ensures that an unknown
- // -- compiler version is assumed to be VER140.
- {$IFDEF VER140}
- {$DEFINE USE_VER140}
- {$ENDIF}
-
- {$IFDEF VER_UNKNOWN}
- {$UNDEF VER_UNKNOWN}
- {$DEFINE USE_VER140}
- {$ENDIF}
-
- {$IFDEF USE_VER140}
- {$UNDEF USE_VER140}
- {$UNDEF VER_UNKNOWN}
- {$DEFINE VER14x}
- {$DEFINE INTERFACES}
- {$DEFINE WIDESTRINGS}
- {$DEFINE RESOURCESTRINGS}
- {$DEFINE OVERLOADING}
- {$DEFINE DEFAULTPARAMS}
- {$DEFINE INT64}
- {$DEFINE VCL60}
- {$DEFINE VCL20PLUS}
- {$DEFINE VCL30PLUS}
- {$DEFINE VCL35PLUS}
- {$DEFINE VCL40PLUS}
- {$DEFINE VCL50PLUS}
- {$DEFINE VCL60PLUS}
- {$IFDEF WIN32}
- {$IFDEF BCB}
- // assume this is C++Builder 6
- {$ELSE} // must be Delphi 6
- {$DEFINE DELPHI}
- {$DEFINE DELPHI6}
- {$DEFINE DELPHI2PLUS}
- {$DEFINE DELPHI3PLUS}
- {$DEFINE DELPHI4PLUS}
- {$DEFINE DELPHI5PLUS}
- {$DEFINE DELPHI6PLUS}
- {$ENDIF}
- {$ELSE}
- // must a non-windows compiler
- {$ENDIF}
- {$ENDIF}
-
-